home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 7 / Gekikoh Dennoh Club Vol. 7 (Japan).7z / Gekikoh Dennoh Club Vol. 7 (Japan) (Track 01).bin / tools / d / jydrv210.lzh / STICK2.S < prev   
Text File  |  1998-12-25  |  10KB  |  425 lines

  1. *
  2. * JOYDRV X-BASICライブラリ version 2.10
  3. * Copyright 1995,96,97,98 by HUYE
  4. *
  5. .cpu    68000
  6. .text
  7. INFO_TBL:
  8.     .dc.l    FNC_INIT            * 初期化ルーチン
  9.     .dc.l    RUN_FNC                * RUN時サブルーチン
  10.     .dc.l    END_FNC                * END時サブルーチン
  11.     .dc.l    EXIT_BASIC            * OS復帰時サブルーチン
  12.     .dc.l    BREAK_EXEC            * BREAK時サブルーチン
  13.     .dc.l    CTRLD_EXEC            * CTRL+D時サブルーチン
  14.     .dc.l    RES1_AREA            * 予備
  15.     .dc.l    RES2_AREA            * 予備
  16.     .dc.l    TOKEN_TBL            * トークンテーブル
  17.     .dc.l    PARM_TBL            * パラメータテーブル
  18.     .dc.l    EXEC_TBL            * 実行アドレステーブル
  19.     .dc.l    0,0,0,0,0            * 予備
  20.  
  21. FNC_INIT:
  22. RUN_FNC:
  23. END_FNC:
  24. EXIT_BASIC:
  25. BREAK_EXEC:
  26. CTRLD_EXEC:
  27. RES1_AREA:
  28. RES2_AREA:
  29.     rts
  30.  
  31. get_joy_data:
  32.     move.l    $c(a7),d1            * ジョイスティック番号取得
  33.     subq.l    #1,d1
  34.     moveq.l    #$3b,d0
  35.     trap    #15                * ジョイスティック読み込み
  36.     not.l    d0
  37.     bra    parm_set
  38.  
  39. get_joydrv:
  40.     bsr    joydrv_sts
  41.     bra    parm_set
  42.  
  43. joydrv_sts:
  44.     move.w    #$ff00,d1
  45.     moveq.l    #1,d2
  46.     moveq.l    #$3b,d0
  47.     trap    #15
  48.     tst.l    d0
  49.     beq    joydrv_sts_1
  50.     movea.l    d0,a1
  51.     moveq.l    #$84,d0
  52.     trap    #15
  53.     cmpi.l    #'JOYD',d0
  54.     bne    joydrv_sts_1
  55.     moveq.l    #$83,d0
  56.     trap    #15
  57.     cmpi.w    #'RV',d0
  58.     bne    joydrv_sts_1
  59.     moveq.l    #0,d0                    * 常駐している
  60.     rts
  61. joydrv_sts_1:
  62.     moveq.l    #$fd,d0                    * 常駐していない
  63.     rts
  64.  
  65. get_analog_data:
  66.     bsr    joydrv_sts                * 常駐状態取得
  67.     tst.l    d0
  68.     bmi    parm_set
  69.     move.l    $c(a7),d3                * ジョイスティック番号取得
  70.     subq.l    #1,d3
  71.     movea.l    $16(a7),a1                * データ格納アドレス取得
  72.     moveq.l    #$08,d2
  73.     move.w    #$ff00,d1
  74.     moveq.l    #$3b,d0
  75.     trap    #15
  76.     bra    parm_set
  77.  
  78. get_joy_mtap:
  79.     bsr    joydrv_sts                * 常駐状態取得
  80.     tst.l    d0
  81.     bmi    parm_set
  82.     move.w    #$ff00,d1
  83.     moveq.l    #$10,d2
  84.     moveq.l    #$ff,d3
  85.     moveq.l    #$3b,d0
  86.     trap    #15
  87.     ext.l    d0                    * マルチタップ判定状態
  88.     bra    parm_set
  89.  
  90. get_joy_bitcnv:
  91.     bsr    joydrv_sts                * 常駐状態取得
  92.     tst.l    d0
  93.     bmi    parm_set
  94.     move.l    $c(a7),d4                * ジョイスティック番号取得
  95.     subq.l    #1,d4
  96.     moveq.l    #$ff,d3
  97.     moveq.l    #$11,d2
  98.     move.w    #$ff00,d1
  99.     moveq.l    #$3b,d0
  100.     trap    #15
  101.     ext.l    d0                    * ビット変換モード状態
  102.     bra    parm_set
  103.  
  104. get_joy_bitdat:
  105.     bsr    joydrv_sts                * 常駐状態取得
  106.     tst.l    d0
  107.     bmi    parm_set
  108.     move.l    $c(a7),d4                * ジョイスティック番号取得
  109.     movea.l    $16(a7),a1                * 変換データ格納アドレス取得
  110.     subq.l    #1,d4
  111.     moveq.l    #$ff,d3
  112.     moveq.l    #$12,d2
  113.     move.w    #$ff00,d1
  114.     moveq.l    #$3b,d0
  115.     trap    #15
  116.     bra    parm_set
  117.  
  118. get_joy_out:
  119.     bsr    joydrv_sts                * 常駐状態取得
  120.     tst.l    d0
  121.     bmi    parm_set
  122.     move.w    #$ff00,d1
  123.     moveq.l    #$13,d2
  124.     moveq.l    #$ff,d3
  125.     moveq.l    #$3b,d0
  126.     trap    #15
  127.     ext.l    d0                    * マルチタップ判定状態
  128.     bra    parm_set
  129.  
  130. get_tap_maxnum:
  131.     bsr    joydrv_sts                * 常駐状態取得
  132.     tst.l    d0
  133.     bmi    parm_set
  134.     move.w    #$ff00,d1
  135.     moveq.l    #$15,d2
  136.     moveq.l    #$ff,d3
  137.     moveq.l    #$3b,d0
  138.     trap    #15
  139.     ext.l    d0
  140.     bra    parm_set
  141.  
  142. get_plus_emu:
  143.     bsr    joydrv_sts                * 常駐状態取得
  144.     tst.l    d0
  145.     bmi    parm_set
  146.     move.l    $c(a7),d4                * ジョイスティック番号取得
  147.     subq.l    #1,d4
  148.     move.w    #$ff00,d1
  149.     moveq.l    #$16,d2
  150.     moveq.l    #$ff,d3
  151.     moveq.l    #$3b,d0
  152.     trap    #15
  153.     ext.l    d0
  154.     bra    parm_set
  155.  
  156. get_plus_thres:
  157.     bsr    joydrv_sts                * 常駐状態取得
  158.     tst.l    d0
  159.     bmi    parm_set
  160.     move.l    $c(a7),d4                * ジョイスティック番号取得
  161.     subq.l    #1,d4
  162.     move.w    #$ff00,d1
  163.     moveq.l    #$17,d2
  164.     moveq.l    #$ff,d3
  165.     moveq.l    #$3b,d0
  166.     trap    #15
  167.     ext.l    d0
  168.     bra    parm_set
  169.  
  170. set_joy_mtap:
  171.     bsr    joydrv_sts                * 常駐状態取得
  172.     tst.l    d0
  173.     bmi    parm_set
  174.     move.w    #$ff00,d1
  175.     moveq.l    #$10,d2
  176.     move.l    $c(a7),d3                * 設定状態
  177.     moveq.l    #$3b,d0
  178.     trap    #15
  179.     ext.l    d0                    * マルチタップ判定状態
  180.     bra    parm_set
  181.  
  182. set_joy_bitcnv:
  183.     bsr    joydrv_sts                * 常駐状態取得
  184.     tst.l    d0
  185.     bmi    parm_set
  186.     move.l    $c(a7),d4                * ジョイスティック番号取得
  187.     subq.l    #1,d4
  188.     move.l    $16(a7),d3                * 設定状態
  189.     moveq.l    #$11,d2
  190.     move.w    #$ff00,d1
  191.     moveq.l    #$3b,d0
  192.     trap    #15
  193.     ext.l    d0                    * ビット変換モード状態
  194.     bra    parm_set
  195.  
  196. set_joy_bitdat:
  197.     bsr    joydrv_sts                * 常駐状態取得
  198.     tst.l    d0
  199.     bmi    parm_set
  200.     move.l    $c(a7),d4                * ジョイスティック番号取得
  201.     movea.l    $16(a7),a1                * 変換データ格納アドレス取得
  202.     subq.l    #1,d4
  203.     moveq.l    #0,d3
  204.     moveq.l    #$12,d2
  205.     move.w    #$ff00,d1
  206.     moveq.l    #$3b,d0
  207.     trap    #15
  208.     bra    parm_set
  209.  
  210. set_joy_out:
  211.     bsr    joydrv_sts                * 常駐状態取得
  212.     tst.l    d0
  213.     bmi    parm_set
  214.     move.w    #$ff00,d1
  215.     moveq.l    #$13,d2
  216.     move.l    $c(a7),d3                * 設定状態
  217.     moveq.l    #$3b,d0
  218.     trap    #15
  219.     ext.l    d0                    * マルチタップ判定状態
  220.     bra    parm_set
  221.  
  222. set_tap_maxnum:
  223.     bsr    joydrv_sts                * 常駐状態取得
  224.     tst.l    d0
  225.     bmi    parm_set
  226.     move.w    #$ff00,d1
  227.     moveq.l    #$15,d2
  228.     move.l    $c(a7),d3                * 設定状態
  229.     moveq.l    #$3b,d0
  230.     trap    #15
  231.     ext.l    d0
  232.     bra    parm_set
  233.  
  234. set_plus_emu:
  235.     bsr    joydrv_sts                * 常駐状態取得
  236.     tst.l    d0
  237.     bmi    parm_set
  238.     move.l    $c(a7),d4                * ジョイスティック番号取得
  239.     subq.l    #1,d4
  240.     move.l    $16(a7),d3
  241.     move.w    #$ff00,d1
  242.     moveq.l    #$16,d2
  243.     moveq.l    #$3b,d0
  244.     trap    #15
  245.     ext.l    d0
  246.     bra    parm_set
  247.  
  248. set_plus_thres:
  249.     bsr    joydrv_sts                * 常駐状態取得
  250.     tst.l    d0
  251.     bmi    parm_set
  252.     move.l    $c(a7),d4                * ジョイスティック番号取得
  253.     subq.l    #1,d4
  254.     move.l    $16(a7),d3
  255.     move.w    #$ff00,d1
  256.     moveq.l    #$17,d2
  257.     moveq.l    #$3b,d0
  258.     trap    #15
  259.     ext.l    d0
  260.     bra    parm_set
  261.  
  262. read_ps_memc:
  263.     bsr    joydrv_sts                * 常駐状態取得
  264.     tst.l    d0
  265.     bmi    parm_set
  266.     move.w    #$ff00,d1
  267.     moveq.l    #$20,d2
  268.     move.l    $c(a7),d3                * ポート番号
  269.     subq.l    #1,d3
  270.     move.l    $16(a7),d4                * 転送開始フレーム番号
  271.     move.l    $20(a7),d5                * 転送フレーム数-1
  272.     movea.l    $2a(a7),a1                * データアドレス
  273.     moveq.l    #$3b,d0
  274.     trap    #15
  275.     bra    parm_set
  276.  
  277. write_ps_memc:
  278.     bsr    joydrv_sts                * 常駐状態取得
  279.     tst.l    d0
  280.     bmi    parm_set
  281.     move.w    #$ff00,d1
  282.     moveq.l    #$21,d2
  283.     move.l    $c(a7),d3                * ポート番号
  284.     subq.l    #1,d3
  285.     move.l    $16(a7),d4                * 転送開始フレーム番号
  286.     move.l    $20(a7),d5                * 転送フレーム数-1
  287.     movea.l    $2a(a7),a1                * データアドレス
  288.     moveq.l    #$3b,d0
  289.     trap    #15
  290.     bra    parm_set
  291.  
  292. ctrl_ps_motor:
  293.     bsr    joydrv_sts                * 常駐状態取得
  294.     tst.l    d0
  295.     bmi    parm_set
  296.     move.l    $c(a7),d3                * ジョイスティック番号取得
  297.     subq.l    #1,d3
  298.     move.l    $16(a7),d4                * コントロールステータス取得
  299.     move.l    $20(a7),d5                * 第二モーター強弱値取得
  300.     move.w    #$ff00,d1
  301.     moveq.l    #$22,d2
  302.     moveq.l    #$3b,d0
  303.     trap    #15
  304. parm_set:
  305.     lea.l    RET_PARM_TBL(pc),a0        * 戻り値エリア
  306.     clr.w    (a0)
  307.     move.l    d0,6(a0)            * 結果格納
  308.     moveq.l    #0,d0                * 正常終了
  309.     rts
  310.  
  311. RET_PARM_TBL:
  312.     .dc.w    0
  313.     .dc.l    0,0
  314.  
  315. PARM_TBL:
  316.     .dc.l    GET_JOY_DATA_PARM
  317.     .dc.l    GET_JOYDRV_PARM
  318.     .dc.l    GET_ANALOG_DATA_PARM
  319.     .dc.l    GET_JOY_MTAP_PARM
  320.     .dc.l    GET_JOY_BITCNV_PARM
  321.     .dc.l    GET_JOY_BITDAT_PARM
  322.     .dc.l    GET_JOY_OUT_PARM
  323.     .dc.l    GET_TAP_MAXNUM_PARM
  324.     .dc.l    GET_PLUS_EMU_PARM
  325.     .dc.l    GET_PLUS_THRES_PARM
  326.     .dc.l    SET_JOY_MTAP_PARM
  327.     .dc.l    SET_JOY_BITCNV_PARM
  328.     .dc.l    SET_JOY_BITDAT_PARM
  329.     .dc.l    SET_JOY_OUT_PARM
  330.     .dc.l    SET_TAP_MAXNUM_PARM
  331.     .dc.l    SET_PLUS_EMU_PARM
  332.     .dc.l    SET_PLUS_THRES_PARM
  333.     .dc.l    READ_PS_MEMC_PARM
  334.     .dc.l    WRITE_PS_MEMC_PARM
  335.     .dc.l    CTRL_PS_MOTOR_PARM
  336.  
  337. GET_JOY_DATA_PARM:
  338.     .dc.w    $0002,$8001
  339. GET_JOYDRV_PARM:
  340.     .dc.w    $8001
  341. GET_ANALOG_DATA_PARM:
  342.     .dc.w    $0002,$0012,$8001
  343. GET_JOY_MTAP_PARM:
  344.     .dc.w    $8001
  345. GET_JOY_BITCNV_PARM:
  346.     .dc.w    $0002,$8001
  347. GET_JOY_BITDAT_PARM:
  348.     .dc.w    $0002,$0012,$8001
  349. GET_JOY_OUT_PARM:
  350.     .dc.w    $8001
  351. GET_TAP_MAXNUM_PARM:
  352.     .dc.w    $8001
  353. GET_PLUS_EMU_PARM:
  354.     .dc.w    $0002,$8001
  355. GET_PLUS_THRES_PARM:
  356.     .dc.w    $0002,$8001
  357. SET_JOY_MTAP_PARM:
  358.     .dc.w    $0002,$8001
  359. SET_JOY_BITCNV_PARM:
  360.     .dc.w    $0002,$0002,$8001
  361. SET_JOY_BITDAT_PARM:
  362.     .dc.w    $0002,$0012,$8001
  363. SET_JOY_OUT_PARM:
  364.     .dc.w    $0002,$8001
  365. SET_TAP_MAXNUM_PARM:
  366.     .dc.w    $0002,$8001
  367. SET_PLUS_EMU_PARM:
  368.     .dc.w    $0002,$0002,$8001
  369. SET_PLUS_THRES_PARM:
  370.     .dc.w    $0002,$0002,$8001
  371. READ_PS_MEMC_PARM:
  372.     .dc.w    $0002,$0002,$0002,$0014,$8001
  373. WRITE_PS_MEMC_PARM:
  374.     .dc.w    $0002,$0002,$0002,$0014,$8001
  375. CTRL_PS_MOTOR_PARM:
  376.     .dc.w    $0002,$0002,$0002,$8001
  377.  
  378. EXEC_TBL:
  379.     .dc.l    get_joy_data                * 関数名(ジョイスティック状態の取得)
  380.     .dc.l    get_joydrv                * 関数名(ドライバ常駐状態の取得)
  381.     .dc.l    get_analog_data                * 関数名(アナログスティック読み込み)
  382.     .dc.l    get_joy_mtap                * 関数名(マルチタップ判定状態の取得)
  383.     .dc.l    get_joy_bitcnv                * 関数名(ビット変換モード状態の取得)
  384.     .dc.l    get_joy_bitdat                * 関数名(ビット変換データの取得)
  385.     .dc.l    get_joy_out                * 関数名(出力モードの取得)
  386.     .dc.l    get_tap_maxnum                * 関数名(マルチタップ使用時ジョイスティック数の取得)
  387.     .dc.l    get_plus_emu                * 関数名(アナログスティック十字キーエミュレート変換の取得)
  388.     .dc.l    get_plus_thres                * 関数名(アナログスティック十字キーエミュレートしきい値の取得)
  389.     .dc.l    set_joy_mtap                * 関数名(マルチタップ判定状態の設定)
  390.     .dc.l    set_joy_bitcnv                * 関数名(ビット変換モード状態の設定)
  391.     .dc.l    set_joy_bitdat                * 関数名(ビット変換データの設定)
  392.     .dc.l    set_joy_out                * 関数名(出力モードの設定)
  393.     .dc.l    set_tap_maxnum                * 関数名(マルチタップ使用時ジョイスティック数の設定)
  394.     .dc.l    set_plus_emu                * 関数名(アナログスティック十字キーエミュレート変換の設定)
  395.     .dc.l    set_plus_thres                * 関数名(アナログスティック十字キーエミュレートしきい値の設定)
  396.     .dc.l    read_ps_memc                * 関数名(プレイステーションメモリカードの読み込み)
  397.     .dc.l    write_ps_memc                * 関数名(プレイステーションメモリカードの書き込み)
  398.     .dc.l    ctrl_ps_motor                * 関数名(プレイステーション振動パッドコントロール)
  399.  
  400. TOKEN_TBL:
  401.     .dc.b    'get_joy_data',0            * 関数名(ジョイスティック状態の取得)
  402.     .dc.b    'get_joydrv',0                * 関数名(ドライバ常駐状態の取得)
  403.     .dc.b    'get_analog_data',0            * 関数名(アナログスティック読み込み)
  404.     .dc.b    'get_joy_mtap',0            * 関数名(マルチタップ判定状態の取得)
  405.     .dc.b    'get_joy_bitcnv',0            * 関数名(ビット変換モード状態の取得)
  406.     .dc.b    'get_joy_bitdat',0            * 関数名(ビット変換データの取得)
  407.     .dc.b    'get_joy_out',0                * 関数名(出力モードの取得)
  408.     .dc.b    'get_tap_maxnum',0            * 関数名(マルチタップ使用時ジョイスティック数の取得)
  409.     .dc.b    'get_plus_emu',0            * 関数名(アナログスティック十字キーエミュレート変換の取得)
  410.     .dc.b    'get_plus_thres',0            * 関数名(アナログスティック十字キーエミュレートしきい値の取得)
  411.     .dc.b    'set_joy_mtap',0            * 関数名(マルチタップ判定状態の設定)
  412.     .dc.b    'set_joy_bitcnv',0            * 関数名(ビット変換モード状態の設定)
  413.     .dc.b    'set_joy_bitdat',0            * 関数名(ビット変換データの設定)
  414.     .dc.b    'set_joy_out',0                * 関数名(出力モードの設定)
  415.     .dc.b    'set_tap_maxnum',0            * 関数名(マルチタップ使用時ジョイスティック数の設定)
  416.     .dc.b    'set_plus_emu',0            * 関数名(アナログスティック十字キーエミュレート変換の設定)
  417.     .dc.b    'set_plus_thres',0            * 関数名(アナログスティック十字キーエミュレートしきい値の設定)
  418.     .dc.b    'read_ps_memc',0            * 関数名(プレイステーションメモリカードの読み込み)
  419.     .dc.b    'write_ps_memc',0            * 関数名(プレイステーションメモリカードの書き込み)
  420.     .dc.b    'ctrl_ps_motor',0            * 関数名(プレイステーション振動パッドコントロール)
  421.     .dc.b    0
  422.  
  423. .data
  424. .end
  425.